JavaScriptã®é åãã¿ãŒã³ãããã³ã°ããã®ããã©ãŒãã³ã¹ãžã®åœ±é¿ããããŠææ°ã®Webã¢ããªã±ãŒã·ã§ã³ã«ãããå¹ççãªé ååŠçã®ããã®æé©åææ³ãæ¢ããŸãã
JavaScriptã®é åãã¿ãŒã³ãããã³ã°ã®ããã©ãŒãã³ã¹ïŒé åãã¿ãŒã³ã®åŠçé床
JavaScriptã®é åãã¿ãŒã³ãããã³ã°ã¯ãå€ãã®å Žåãåå²ä»£å ¥ãéããŠè¡ãããé åããå€ãæœåºããããã®ç°¡æœã§èªã¿ãããæ¹æ³ãæäŸããŸããã³ãŒãã®æçæ§ãé«ããäžæ¹ã§ãç¹ã«å€§èŠæš¡ãªããŒã¿ã»ãããããã©ãŒãã³ã¹ãéèŠãªã¢ããªã±ãŒã·ã§ã³ãæ±ãéã«ã¯ããã®æœåšçãªããã©ãŒãã³ã¹ãžã®åœ±é¿ã«æ³šæããå¿ èŠããããŸãããã®èšäºã§ã¯ãJavaScriptã®é åãã¿ãŒã³ãããã³ã°ã®ããã©ãŒãã³ã¹ç¹æ§ãæãäžãããã®é床ã«åœ±é¿ãäžããèŠå ãæ¢ããã³ãŒãå ã§é ååŠçãæé©åããããã®å®è·µçãªãã¯ããã¯ãæäŸããŸãã
JavaScriptã®é åãã¿ãŒã³ãããã³ã°ãçè§£ãã
é åãã¿ãŒã³ãããã³ã°ã¯ãåå²ä»£å ¥ã䜿çšããŠå®è£ ãããé åããå€ãåãåºããŠåå¥ã®å€æ°ã«å±éããããšãã§ããŸãããã®äŸãèããŠã¿ãŸãããã
const myArray = [1, 2, 3, 4, 5];
const [first, second, , fourth] = myArray;
console.log(first); // Output: 1
console.log(second); // Output: 2
console.log(fourth); // Output: 4
ãã®ã¹ããããã§ã¯ã`myArray`ã®1çªç®ã2çªç®ã4çªç®ã®èŠçŽ ããããã`first`ã`second`ã`fourth`ãšãã倿°ã«æœåºããŠããŸããã«ã³ãïŒ`,`ïŒã¯ãã¬ãŒã¹ãã«ããŒãšããŠæ©èœãã3çªç®ã®èŠçŽ ãã¹ãããããŸãããã®æ©èœã¯ãç¹å®ã®é åèŠçŽ ã宣èšçã«æœåºããæ¹æ³ãæäŸããããšã§ãã³ãŒãã®å¯èªæ§ã«è²¢ç®ããŸãã
ããã©ãŒãã³ã¹ã«é¢ããèæ ®äºé
åå²ä»£å ¥ã¯æ§æçã«ã¯ãšã¬ã¬ã³ãã§ããããã®ããã©ãŒãã³ã¹ã¯JavaScriptãšã³ãžã³ããã¿ãŒã³ã®è€éãã«ãã£ãŠç°ãªãå ŽåããããŸããé åãã¿ãŒã³ãããã³ã°ã®é床ã«åœ±é¿ãäžããèŠå ã¯ããã€ããããŸãã
- é åã®ãµã€ãºïŒ äžè¬çã«ããã倧ããªé åãåŠçããã«ã¯ããå€ãã®æéãããããŸããèŠçŽ ãã¹ãããããããæ®äœåŒæ°ã䜿çšãããããè€éãªãã¿ãŒã³ã§ã¯ããã®åœ±é¿ãããé¡èã«ãªããŸãã
- ãã¿ãŒã³ã®è€éãïŒ ãã¹ããããåå²ä»£å ¥ãæ®äœåŒæ°ã®äœ¿çšãªã©ãããè€éãªãã¿ãŒã³ã¯ãªãŒããŒããããåŒãèµ·ããå¯èœæ§ããããŸããJavaScriptãšã³ãžã³ã¯ããã¿ãŒã³ãç §åããŠå€ãæœåºããããã«ããå€ãã®æäœãå®è¡ããå¿ èŠããããŸãã
- JavaScriptãšã³ãžã³ïŒ ç°ãªãJavaScriptãšã³ãžã³ïŒäŸïŒChromeãNode.jsã®V8ãFirefoxã®SpiderMonkeyãSafariã®JavaScriptCoreïŒã¯ãç°ãªãæé©åæŠç¥ãæ¡çšããŠããŸãããã®çµæãé åãã¿ãŒã³ãããã³ã°ã®ããã©ãŒãã³ã¹ã¯ãã©ãŠã¶ãç°å¢ã«ãã£ãŠç°ãªãå¯èœæ§ããããŸãã
é åãã¿ãŒã³ãããã³ã°ã®ãã³ãããŒã¯
é åãã¿ãŒã³ãããã³ã°ã®ããã©ãŒãã³ã¹ã«é¢ããæŽå¯ãåŸãããã«ããã³ãããŒã¯ãã¹ãã宿œããããšãã§ããŸããæ¬¡ã®äŸã¯ã`console.time`ãš`console.timeEnd`ã¡ãœããã䜿çšããç°¡åãªãã³ãããŒã¯ã·ããªãªã瀺ããŠããŸãã
const largeArray = Array.from({ length: 100000 }, (_, i) => i + 1);
console.time('Destructuring Assignment');
for (let i = 0; i < 1000; i++) {
const [a, b, , d] = largeArray;
}
console.timeEnd('Destructuring Assignment');
console.time('Traditional Indexing');
for (let i = 0; i < 1000; i++) {
const a = largeArray[0];
const b = largeArray[1];
const d = largeArray[3];
}
console.timeEnd('Traditional Indexing');
ãã®ã³ãŒãã¹ããããã¯ãåå²ä»£å ¥ãšåŸæ¥ã®ã€ã³ããã¯ã¹ã«ããé åã¢ã¯ã»ã¹ã®å®è¡æéãæ¯èŒããŸãããã®ãã³ãããŒã¯ãç°ãªããã©ãŠã¶ãNode.jsã§å®è¡ãããšãããã©ãŒãã³ã¹ã®ã°ãã€ããæããã«ãªãããšããããŸããå€ãã®å Žåãç¹ã«åçŽãªæœåºã¿ã¹ã¯ã§ã¯ãåŸæ¥ã®ã€ã³ããã¯ã¹æå®ã®æ¹ããããã«åªããããã©ãŒãã³ã¹ã瀺ãå¯èœæ§ããããŸããããããå°ããªé åãææ°ã®JavaScriptãšã³ãžã³ã§ã¯ããã®å·®ã¯ãã°ãã°ãããããã§ãã
æé©åãã¯ããã¯
æœåšçãªããã©ãŒãã³ã¹ã®ãªãŒããŒãããã«ãããããããé åãã¿ãŒã³ãããã³ã°ã¯ãã®åœ±é¿ã軜æžããããã«æé©åã§ããŸããããã«ããã€ãã®ãã¯ããã¯ã玹ä»ããŸãã
1. åå²ä»£å ¥ãè³¢ã䜿çšãã
ã³ãŒãã®å¯èªæ§ãšä¿å®æ§ãåäžãããå Žåã«åå²ä»£å ¥ã䜿çšããŠãã ãããã³ãŒãã®ããã©ãŒãã³ã¹ãéèŠãªã»ã¯ã·ã§ã³ã§ã®éå°ãªåå²ä»£å ¥ã¯é¿ããŠãã ããã倧ããªé åããæ°åã®èŠçŽ ããå¿ èŠãªãå Žåã¯ãåŸæ¥ã®ã€ã³ããã¯ã¹æå®ã®æ¹ãå¹ççãããããŸããã
2. ãã¿ãŒã³ãåçŽåãã
ãã¿ãŒã³ã®è€éãã軜æžããŠãã ãããæ·±ããã¹ããããåå²ä»£å ¥ãäžèŠãªèŠçŽ ã®ã¹ãããã¯é¿ããŠãã ãããããåçŽãªãã¿ãŒã³ã¯äžè¬çã«åŠçãé«éã§ãã
3. é åã¡ãœãããæŽ»çšãã
ããè€éãªé åã®å€æã«ã¯ã`map`ã`filter`ã`reduce`ã®ãããªçµã¿èŸŒã¿ã®é åã¡ãœããã®äœ¿çšãæ€èšããŠãã ããããããã®ã¡ãœããã¯ãJavaScriptãšã³ãžã³ã«ãã£ãŠé«åºŠã«æé©åãããŠããããšãå€ãã§ãã
const numbers = [1, 2, 3, 4, 5];
// Using map to square each number
const squaredNumbers = numbers.map(num => num * num);
console.log(squaredNumbers); // Output: [1, 4, 9, 16, 25]
// Using filter to get even numbers
const evenNumbers = numbers.filter(num => num % 2 === 0);
console.log(evenNumbers); // Output: [2, 4]
4. é åã®ã³ããŒãæå°éã«æãã
äžèŠãªé åã®ã³ããŒãäœæãããšãããã©ãŒãã³ã¹ãäœäžããå¯èœæ§ããããŸããé åãæäœããéã¯ããã®å Žã§å€æŽããããæ°ããé åãäœæããªãã¡ãœããã䜿çšããããã«ããŠãã ãããäŸãã°ã`slice`ã§æ°ããé åãäœæããŠããé£çµããã®ã§ã¯ãªãã`splice`ã䜿ã£ãŠé åãçŽæ¥å€æŽãããªã©ã§ãããã¥ãŒã¿ãã«ãªæäœã¯äžè¬çã«é«éã§ãããå¯äœçšã«ã¯æ³šæããŠãã ããã
5. ã³ãŒãããããã¡ã€ã«ãã
ãã©ãŠã¶ã®éçºè ããŒã«ãNode.jsã®ãããã¡ã€ãªã³ã°ããŒã«ã䜿çšããŠãã³ãŒãå ã®ããã©ãŒãã³ã¹ããã«ããã¯ãç¹å®ããŠãã ããããããã¡ã€ãªã³ã°ã«ãããé åãã¿ãŒã³ãããã³ã°ãããã©ãŒãã³ã¹åé¡ãåŒãèµ·ãããŠããç®æãç¹å®ã§ããæé©åã®åãçµã¿ã广çã«éäžãããããšãã§ããŸããã»ãšãã©ã®ææ°ãã©ãŠã¶ã«ã¯ãéçºè ã³ã³ãœãŒã«ã§å©çšå¯èœãªçµã¿èŸŒã¿ã®ããã©ãŒãã³ã¹ç£èŠããŒã«ããããŸãã
6. çµæããã£ãã·ã¥ãã
åãé åã«å¯ŸããŠåãåå²ä»£å ¥æäœãè€æ°åå®è¡ããŠããå Žåã¯ãçµæããã£ãã·ã¥ããããšãæ€èšããŠãã ãããããã¯ãé åã倧ããå Žåãåå²ä»£å ¥ãã¿ãŒã³ãè€éãªå Žåã«ç¹ã«æçã§ãããã ããé åã倿Žãããéã«ã¯ãã£ãã·ã¥ãç¡å¹ã«ããããã«æ³šæããŠãã ããã
function processArray(arr) {
if (!processArray.cache) {
const [first, second, ...rest] = arr;
processArray.cache = { first, second, rest };
}
return processArray.cache;
}
7. é©åãªããŒã¿æ§é ãéžæãã
æã«ã¯ãããŒã¿æ§é èªäœã®éžæãããã©ãŒãã³ã¹ã«å€§ããªåœ±é¿ãäžããããšããããŸããã€ã³ããã¯ã¹ã«ããèŠçŽ ãžã®ã¢ã¯ã»ã¹ãé »ç¹ã«å¿ èŠãªå Žåã¯ãé åãæè¯ã®éžæãããããŸãããããããã·ãŒã±ã³ã¹ã®éäžã§é »ç¹ã«æ¿å ¥ãåé€ãè¡ãå¿ èŠãããå Žåã¯ããªã³ã¯ãªã¹ããä»ã®ããŒã¿æ§é ã®æ¹ãé©åãªå ŽåããããŸããç¹å®ã®ãŠãŒã¹ã±ãŒã¹ã§ã¯ãåŸæ¥ã®é åãããé«éãªæ€çŽ¢ãæäŸã§ãã`Map`ã`Set`ãªããžã§ã¯ãã®äœ¿çšãæ€èšããŠãã ããã
8. åä»ãé åã䜿çšããïŒé©åãªå ŽåïŒ
åä»ãé åã¯ãæ°å€ããŒã¿ãæ±ãéã«å€§å¹ ãªããã©ãŒãã³ã¹åäžãããããããšããããŸããåä»ãé åã¯ããŒã¿ãç¹å®ã®ãã€ããªåœ¢åŒïŒäŸïŒ`Int32Array`ã`Float64Array`ïŒã§æ ŒçŽãããããç¹å®ã®æäœã«ãããŠéåžžã®JavaScripté åãããå¹ççã§ãã
const typedArray = new Int32Array([1, 2, 3, 4, 5]);
for (let i = 0; i < typedArray.length; i++) {
typedArray[i] *= 2;
}
console.log(typedArray); // Output: Int32Array [2, 4, 6, 8, 10]
å®äžçã§ã®äŸ
é åãã¿ãŒã³ãããã³ã°ãé©çšã§ããããã€ãã®å®äžçã®ã·ããªãªãšãããã«é¢é£ããããã©ãŒãã³ã¹ã®èæ ®äºé ãèŠãŠã¿ãŸãããã
1. CSVããŒã¿ã®åŠç
CSVããŒã¿ãåŠçããéãåè¡ããç¹å®ã®ãã£ãŒã«ããæœåºããå¿ èŠããã°ãã°ãããŸããé åãã¿ãŒã³ãããã³ã°ã¯ããã®ã¿ã¹ã¯ãç°¡çŽ åã§ããŸãã
const csvData = "John,Doe,30,New York\nJane,Smith,25,London";
const rows = csvData.split('\n');
rows.forEach(row => {
const [firstName, lastName, age, city] = row.split(',');
console.log(`Name: ${firstName} ${lastName}, Age: ${age}, City: ${city}`);
});
ãã®äŸã§ã¯ãåè¡ããã£ãŒã«ãã®é åã«åå²ãããã®åŸãåå²ä»£å ¥ã䜿çšããŠåã ã®å€ãæœåºããŠããŸãã倧ããªCSVãã¡ã€ã«ã®å Žåã¯ããã¡ã€ã«å šäœãäžåºŠã«ã¡ã¢ãªã«ããŒãããã®ãé¿ããããã«ãã¹ããªãŒãã³ã°ã¢ãããŒãã®äœ¿çšãæ€èšããŠãã ãããPapa Parseã®ãããªã©ã€ãã©ãªã¯ãCSVãã¡ã€ã«ãæ±ãéã«éåžžã«åœ¹ç«ã¡ãŸãã
2. Reactã³ã³ããŒãã³ãã®Props
Reactã§ã¯ãé åãã¿ãŒã³ãããã³ã°ã䜿çšããŠã³ã³ããŒãã³ãã«æž¡ãããpropsãæœåºã§ããŸãã
function MyComponent({ children, className, ...rest }) {
return (
{children}
);
}
ããã§ã¯ã`children`ãš`className`ã®propsãæœåºãã`...rest`ãã©ã¡ãŒã¿ãæ®ãã®propsããã¹ãŠãã£ããã£ããŸãããã®ã¢ãããŒãã¯ãpropã®ãã³ããªã³ã°ãç°¡çŽ åããã³ãŒãã®å¯èªæ§ãé«ããŸãã
3. APIã¬ã¹ãã³ã¹ã®æäœ
APIã¬ã¹ãã³ã¹ãæ±ãéãè¿ãããJSONããç¹å®ã®ããŒã¿ãã€ã³ããæœåºããå¿ èŠããã°ãã°ãããŸããããŒã¿ãé åãšããŠæ§é åãããŠããå Žåãé åãã¿ãŒã³ãããã³ã°ã圹ç«ã¡ãŸãã
fetch('https://api.example.com/users')
.then(response => response.json())
.then(users => {
users.forEach(([id, name, email]) => {
console.log(`ID: ${id}, Name: ${name}, Email: ${email}`);
});
});
ãã®äŸã§ã¯ãAPIãããŠãŒã¶ãŒã®ãªã¹ããååŸããåå²ä»£å ¥ã䜿çšããŠåãŠãŒã¶ãŒã®IDãååãã¡ãŒã«ã¢ãã¬ã¹ãæœåºããŠããŸããããŒã¿ãåŠçããåã«ãæœåšçãªãšã©ãŒãåŠçããããŒã¿ãæ€èšŒããããšãå¿ããªãã§ãã ããã
JavaScriptãšã³ãžã³ã®æé©å
V8ãªã©ã®ææ°ã®JavaScriptãšã³ãžã³ã¯ãé åãã¿ãŒã³ãããã³ã°ã®ããã©ãŒãã³ã¹ãåäžãããããã«ãæŽç·Žãããæé©åæè¡ãæ¡çšããŠããŸãããããã®æé©åã«ã¯ä»¥äžãå«ãŸããŸãã
- ã€ã³ã©ã€ã³ãã£ãã·ã¥ïŒ 以åã®æäœã®çµæããã£ãã·ã¥ããŠãåŸç¶ã®å®è¡ãé«éåããŸãã
- é ãã¯ã©ã¹ïŒ ããããã£ã¢ã¯ã»ã¹ãæé©åããããã«é ãã¯ã©ã¹ãäœæããŸãã
- ãžã£ã¹ãã€ã³ã¿ã€ã ïŒJITïŒã³ã³ãã€ã«ïŒ å®è¡æã«JavaScriptã³ãŒãããã·ã³ã³ãŒãã«ã³ã³ãã€ã«ããŸãã
ãããã®æé©åã¯ãé åãã¿ãŒã³ãããã³ã°ã«é¢é£ãããªãŒããŒããããå€§å¹ ã«åæžã§ããŸããããããå¹ççãªã³ãŒããæžããäžèŠãªè€éããé¿ããããšã¯äŸç¶ãšããŠäžå¯æ¬ ã§ãã
çµè«
JavaScriptã®é åãã¿ãŒã³ãããã³ã°ã¯ãé åããå€ãæœåºããããã®åŒ·åã§è¡šçŸåè±ããªæ¹æ³ãæäŸããŸããã³ãŒãã®å¯èªæ§ãšä¿å®æ§ã®ç¹ã§å€§ããªå©ç¹ããããŸãããéçºè ã¯ãã®æœåšçãªããã©ãŒãã³ã¹ãžã®åœ±é¿ãèªèããŠããå¿ èŠããããŸãããã®é床ã«åœ±é¿ãäžããèŠå ãçè§£ããé©åãªæé©åæè¡ãé©çšããããšã§ãé åãã¿ãŒã³ãããã³ã°ãJavaScriptã¢ããªã±ãŒã·ã§ã³ã®ããã©ãŒãã³ã¹ã劚ããã®ã§ã¯ãªããåäžãããããšã確å®ã«ã§ããŸããåå²ä»£å ¥ãè³¢ã䜿çšãããã¿ãŒã³ãç°¡çŽ åããçµã¿èŸŒã¿ã®é åã¡ãœãããæŽ»çšããããšã§ãããã©ãŒãã³ã¹ãç ç²ã«ããããšãªãé åãã¿ãŒã³ãããã³ã°ã®åãæŽ»çšãããå¹ççã§ä¿å®æ§ã®é«ãã³ãŒããæžãããšãã§ããŸããåžžã«ã³ãŒãã®ãã³ãããŒã¯ãšãããã¡ã€ãªã³ã°ãè¡ããããã©ãŒãã³ã¹ã®ããã«ããã¯ãç¹å®ããããã«å¿ããŠæé©åæŠç¥ã調æŽããŠãã ãããææ°ã®ããã©ãŒãã³ã¹æ¹åãæŽ»çšããããã«ãJavaScriptãšã³ãžã³ãææ°ã®ç¶æ ã«ä¿ã€ããšãå¿ããªãã§ãã ãããJavaScriptãšã³ãžã³ãé²åãç¶ããã«ã€ããŠãé åãã¿ãŒã³ãããã³ã°ã®ããã©ãŒãã³ã¹ã¯åäžãç¶ããçŸä»£ã®Webéçºã«ãšã£ãŠããã«äŸ¡å€ã®ããããŒã«ã«ãªãã§ãããããã®èšäºã§è°è«ãããããã©ãŒãã³ã¹ã«é¢ããèæ ®äºé ã«çæããããšã§ãèªä¿¡ãæã£ãŠé åãã¿ãŒã³ãããã³ã°ãJavaScriptã³ãŒãã«çµã¿èŸŒã¿ãå ç¢ã§å¹ççãªã¢ããªã±ãŒã·ã§ã³ãæ§ç¯ã§ããŸãã